package com.ty.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ty.entity.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OrderMapper extends BaseMapper<Order> {

    /**
     * 通过ID查询单条数据
     *
     * @param orderId 主键
     * @return 实例对象
     */
    Order queryById(Integer orderId);


    /**
     * 新增数据
     *
     * @param order 实例对象
     * @return 影响行数
     */
    int insert(Order order);
    /**
     * 批量新增数据
     *
     * @param entities List<Order> 实例对象列表
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<Order> entities);

    /**
     * 更新数据
     *
     * @param order 实例对象
     * @return 影响行数
     */
    int update(@Param("order") Order order);
    /**
     * 通过主键删除数据
     *
     * @param orderId 主键
     * @return 影响行数
     */
    int deleteById(@Param("orderId") Integer orderId);

    /**
     * 将订单改为已支付状态
     *
     * @param orderId
     * @return
     */
    int updateStatusToPaySuccess (@Param("orderId") Integer orderId);

    /**
     * 取消订单
     *
     * @param orderId
     * @return
     */
    int cancelOrders(@Param("orderId") Integer orderId);

    /**
     * 根据订单号和用户id获取订单
     *
     * @param orderId
     * @param userId
     * @return
     */
    List<Order> getByOrderIdAndUserId (@Param("orderId") Integer orderId,@Param("userId") Integer userId);


    /**
     * 确认收货
     * @param orderId
     * @return
     */
    int receiedOrder (@Param("OrderId") Integer orderId);


}
